import { Callout } from '@theguild/components'

# DateTime

A date-time string at UTC, such as `2007-12-03T10:15:30Z`, is compliant with the `date-time` format
outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates
and times using the Gregorian calendar.

This scalar is a description of an exact instant on the timeline such as the instant that a user
account was created.

This scalar ignores leap seconds (thereby assuming that a minute constitutes 59 seconds). In this
respect, it diverges from the RFC 3339 profile.

Where an RFC 3339 compliant date-time string has a time-zone other than UTC, it is shifted to UTC.
For example, the date-time string `2016-01-01T14:10:20+01:00` is shifted to `2016-01-01T13:10:20Z`.

## Result Coercion

JavaScript Date instances and timestamps (represented as 32-bit signed integers) are coerced to RFC
3339 compliant date-time strings. Invalid Date instances raise a field error.

## Input Coercion

When expected as an input type, only RFC 3339 compliant date-time strings are accepted. All other
input values raise a query error indicating an incorrect type.

<Callout>
  Taken from [graphql-iso-date](https://github.com/excitement-engineer/graphql-iso-date)
</Callout>

<Callout>
  This scalar serializes into
  [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) and
  parses into
  [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date). But
  if you want to get the value serialized into an ISO string, you can use the `DateTimeISO` scalar.
</Callout>
